//
//  JCLWelcomeView.swift
//  WeiBo
//
//  Created by DDC on 2017/9/14.
//  Copyright © 2017年 DDC. All rights reserved.
//

import UIKit
import SDWebImage
class JCLWelcomeView: UIView {

    /// 属性
    /// 头像
    @IBOutlet weak var userIconImgView: UIImageView!
    /// 欢迎文字
    @IBOutlet weak var welcomeLabel: UILabel!
    /// 头像底部约束
    @IBOutlet weak var iconBottomCons: NSLayoutConstraint!
    
    class func welCome() -> JCLWelcomeView {
        //从xib加载
        let nib = UINib(nibName: "JCLWelcomeView", bundle: nil)
        
        let v = nib.instantiate(withOwner: nil, options: nil)[0] as! JCLWelcomeView
        //设置frame
        v.frame = UIScreen.main.bounds
        
        return v

    }
    
    override func awakeFromNib() {
        
        // 获取url
        guard let urlString = JCLNetWorkTools.shared.userAccount.avatar_large,
              let url = URL(string: urlString) else {
                return
        }
        //设置头像
        userIconImgView.sd_setImage(with: url, placeholderImage: UIImage(named: "avatar_default_big"))
        //设置圆角
        userIconImgView.layer.cornerRadius = userIconImgView.bounds.width * 0.5
        userIconImgView.layer.masksToBounds = true
    }
    
    /// 添加动画
    /* 
        视图是使用自动布局来设置的 ，只设置了约束
        当视图被添加到窗口时,根据父视图的大小计算约束值 更新控件位置
        layoutIfNeeded 会直接按照当前约束更新控件位置
        执行之后,控件位置就是XIB中设置的位置
    */
    override func didMoveToWindow() {
        super.didMoveToWindow()
        
        //  在动画发生之前 先对界面上的空间布局一次
        self.layoutIfNeeded()
        //产生动画
        iconBottomCons.constant = bounds.size.height - 200
        
        UIView.animate(withDuration: 1.0, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0, options: [], animations: {
            
            self.layoutIfNeeded()
            
        }) { (_) in
            
            //完成之后 显示欢迎文字
            UIView.animate(withDuration: 1.0, animations: { 
                
                self.welcomeLabel.alpha = 1
            }, completion: { (_) in
                // 完成动画 进入主界面
                self.removeFromSuperview()
            })
        }
    }
    
    
}
